package com.gm.sfc.util;

import static com.gm.sfc.util.consts.Consts.*;
import android.util.Log;

/**
 * ログクラス
 * @author $Author: segen.der.gottin@gmail.com $
 * @version $Revision: 7 $
 */
public class LogUtil {
    /**
     * Errorログ
     * @param Tag タグ
     * @param msg　メッセージ
     */
    public static void logE(String Tag, String msg) {
        if (DEBUGGABLE) {
            Log.e(Tag, msg);
        }
    }

    /**
     * Warnログ
     * @param Tag タグ
     * @param msg　メッセージ
     */
    public static void logW(String Tag, String msg) {
        if (DEBUGGABLE) {
            Log.w(Tag, msg);
        }
    }

    /**
     * Debbugログ
     * @param Tag タグ
     * @param msg　メッセージ
     */
    public static void logD(String Tag, String msg) {
        if (DEBUGGABLE) {
            Log.d(Tag, msg);
        }
    }

    /**
     * Infoログ
     * @param Tag タグ
     * @param msg　メッセージ
     */
    public static void logI(String Tag, String msg) {
        if (DEBUGGABLE) {
            Log.i(Tag, msg);
        }
    }

    /**
     * Vorbosログ
     * @param Tag タグ
     * @param msg　メッセージ
     */
    public static void logV(String Tag, String msg) {
        if (DEBUGGABLE) {
            Log.v(Tag, msg);
        }
    }

    /**
     * Errorログ
     * @param YomoreTag タグ
     * @param msg　メッセージ
     */
    public static void logE(String msg) {
        if (DEBUGGABLE) {
            Log.e(TAG, msg);
        }
    }

    /**
     * Warnログ
     * @param YomoreTag タグ
     * @param msg　メッセージ
     */
    public static void logW(String msg) {
        if (DEBUGGABLE) {
            Log.w(TAG, msg);
        }
    }

    /**
     * Debbugログ
     * @param YomoreTag タグ
     * @param msg　メッセージ
     */
    public static void logD(String msg) {
        if (DEBUGGABLE) {
            Log.d(TAG, msg);
        }
    }

    /**
     * Infoログ
     * @param YomoreTag タグ
     * @param msg　メッセージ
     */
    public static void logI(String msg) {
        if (DEBUGGABLE) {
            Log.i(TAG, msg);
        }
    }

    /**
     * Vorbosログ
     * @param YomoreTag タグ
     * @param msg　メッセージ
     */
    public static void logV(String msg) {
        if (DEBUGGABLE) {
            Log.v(TAG, msg);
        }
    }

    /**
     * Vorbosログ
     * @param YomoreTag タグ
     * @param msg　メッセージ
     */
    public static void log(String msg) {
        if (DEBUGGABLE) {
            Log.v(TAG, msg);
        }
    }

    public static void logStack(String TAG, Exception e) {
        if (DEBUGGABLE) {
            Log.e(TAG, e.toString());
            for (StackTraceElement ste : e.getStackTrace()) {
                Log.e(TAG, "at " + ste.getClassName()
                        + "." + ste.getMethodName()
                        + "(" + ste.getFileName()
                        + ":" + ste.getLineNumber()
                        + ")");
            }
        }
    }

    public static void logStack(String TAG, Error e) {
        if (DEBUGGABLE) {
            Log.e(TAG, e.toString());
            for (StackTraceElement ste : e.getStackTrace()) {
                Log.e(TAG, "at " + ste.getClassName()
                        + "." + ste.getMethodName()
                        + "(" + ste.getFileName()
                        + ":" + ste.getLineNumber()
                        + ")");
            }
        }
    }
}
